/*
Date:20210421 0:00pm
key:先将每个[a,b]改成pair，按a排序，即每个左边界排序。
  []
[]
那就只用讨论前后两个有无交集，有交集就更新。
一开始的hash思路错了，因为12 34，23之间有无交集不清楚。
*/

class Solution {
public:
static bool cmp(const pair<int,int>&a,const pair<int,int>&b)
{
    return a.first<b.first;
}
    vector<vector<int>> merge(vector<vector<int>>& intervals) 
    {
        vector<vector<int>> V;
        int max=0;
        vector<pair<int,int>>V1;
        V1.resize(intervals.size());
        vector<int>v;
        v.resize(2);
        for(int i=0;i<intervals.size();i++)
        {
            V1[i]=pair<int,int>(intervals[i][0],intervals[i][1]);
        }
        sort(V1.begin(),V1.end(),cmp);
        for(int i=0;i<intervals.size();i++)
        {
            if(i==0)
            {
                v[0]=V1[i].first;
                v[1]=V1[i].second;
            }
            else
            {
                //看看新的左边界。
                if(V1[i].first>v[1])
                {
                    V.push_back(v);
                    //v.clear();
                    v[0]=V1[i].first;
                    v[1]=V1[i].second;
                }
                else
                {
                    if(V1[i].second<=v[1]){continue;}
                    else
                    {
                        v[1]=V1[i].second;
                    }
                }
            }
        }
        V.push_back(v);
        return V;
    }
};